#ifndef COURSEITEMWIDGET_H
#define COURSEITEMWIDGET_H

#include <QWidget>
#include <qmap.h>
#include <qvector.h>

class CourseItemWidget:public QWidget
{
     Q_OBJECT
public:
    explicit CourseItemWidget(QWidget *parent=0);

private:
    bool isPressed;
    QPoint lastPoint;
    QPoint currentPoint;
    int startHour;              //开始小时
    int endHour;                //结束小时
    int timeleftx;               //时间区域的开始
    int crsttopy;               //排课区域开始
    struct CrseItemTime
    {
        float StartTime;
        float EndTime;
    };
    bool isDraging;             //是否正在拖拽
    float dragStarttime;        //拖拽开始时间
    float dragEndtime;          //拖拽结束时间
    QVector<CrseItemTime> crslst;      //排课列表

private:
    void drawTeacherInfo(QPainter *painter);                //绘制教师信息
    void drawCrst(QPainter *painter);                       //绘制已排课程
    void drawCrstItem(QPainter *painter,QRectF rectcr);
    float getTime(int mouseX);                              //根据传入的X坐标获取时间
    float getX(float time);                                 //根据传入的时间
    double getTotalCrstime();                               //获取总课时
    float getClosedtoTime(float time);                      //四舍五入取最近的数据
    int getEnterCrstIndex(QPoint *point);                   //获取鼠标所在的排课区域下标

protected:
    void paintEvent(QPaintEvent *event);
    bool eventFilter(QObject *watched, QEvent *event);
};

#endif // COURSEITEMWIDGET_H
